package mdm.uniauto.me.route;

import android.content.Context;
import android.content.Intent;

/**
 * @author Administrator
 * @Date 创建时间 ： 2017/10/16
 * @Author 作者：sjt
 * @Description 描述：跳转 activity service broadcastreceiver 等的工具，需要在application里将所使用的activity等注册
 * @Version 版本
 */

public class Route {
    public static<T> RouteManager put(String uri,Class<T> clazz){
        return RouteManager.getInstance().putTargetUri(uri,clazz);
    }
    /**
     * 启用路由地址
     * @param ctx Context
     * @param uri 路由地址
     * @return V
     */
    public static <V> V invoke(Context ctx, String uri){
        if (checkUri(uri)){
            IOperate<?, V> operator = RouteManager.getInstance().getOperator(uri);
            return operator.get(ctx,uri);
        }else {
            throw new NullPointerException("can't find target operate by "+uri);
        }
    }

    /**
     * 路由地址检查
     * @param uri 路由地址
     * @return
     */
    public static boolean checkUri(String uri){
        return RouteManager.getInstance().checkOperatorForURI(uri);
    }
 }
